Component({
  behaviors: [],
  properties: {
      // 控制是否显示日期选择组件的flag
      showCitysPicker: {
          type: Boolean, // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
          value: false, // 属性初始值（可选），如果未指定则会根据类型选择一个
          // 属性被改变时执行的函数（可选），也可以写成在methods段中定义的方法名字符串, 如：'_propertyChange'
          observer: function (newVal, oldVal) {
              if (newVal != oldVal) {
                  if (newVal)
                    this.showCitysPicker()
                  else
                    this.closeCitysPicker()
              }
          }
      },
      // initDate: {
      //     type: String,
      //     value: formatTime(new Date())
      // }
  },
  // 私有数据，可用于模版渲染
  data: {
    animationData: {}, // 动画
    showCitysPicker: false,
    citysData: [],
    citysIndex: [0, 0]
  },

  // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached: function () {
      /**
       * 初始化阴阳历数据
       */
      this.init()
  },
  moved: function () {
  },
  detached: function () {
  },

  methods: {
      /**
       * 初始化城市数据
       */
      init() {
        const citysData = wx.getStorageSync('moon|citys')
        this.setData({
          citysData
        })
      },
      bindChange(e) {
        let arr = []
        // 如果切换了省份, 将市的index重置为0
        if(this.data.citysIndex[0] !== e.detail.value[0]) {
          arr.push(e.detail.value[0])
          arr.push(0)
        } else {
          arr = e.detail.value
        }
        this.setData({
          citysIndex: arr
        })
      },
      /**
       * 选择城市-->确定
       */
      submitSelectDate() {
        const provinceIndex = this.data.citysIndex[0]
        const cityIndex = this.data.citysIndex[1]
        let province = this.data.citysData[provinceIndex]
        let city = province.citys[cityIndex]
        let info = {}
        info.province = province.province
        info.provinceId = province.province_id
        info.city = city.city
        info.cityId = city.city_id

        this.closeCitysPicker()
        this.triggerEvent('submit', info)
      },
      // 显示省市选择控件
      showCitysPicker: function () {
          var animation = wx.createAnimation({
              duration: 160,
              timingFunction: 'linear',
              delay: 0
          })
          this.animation = animation

          animation.translateY(280).step({duration: 0})

          this.setData({
              animationData: animation.export(),
              showCitysPicker: true
          })
          setTimeout(function () {
              animation.translateY(0).step()
              this.setData({
                  animationData: animation.export(),
              })
          }.bind(this), 160)
      },
      // 隐藏省市选择控件
      closeCitysPicker: function () {
          this.animation.translateY(280).step()
          this.setData({
              animationData: this.animation.export(),
          })
          setTimeout(function () {
              this.setData({
                showCitysPicker: false,
              })
          }.bind(this), 120)
      },
  }

})